The present invention is in the area of computer graphical user interfaces (GUIs). It can be used in applications that visualize processes on a computer system display. A process may include multiple process steps or sub-processes, which may be sequential, or partially or fully overlapping. A process visualization may graphically display each of the process steps or sub-processes, along with pertinent information, including duration, performance, and any other information relevant for a user.
One application is in web sites that measure and display system or internet performance. For instance, a message traversing internet may be followed from its source to its destination via multiple intermediate nodes. The time between each two nodes may be a measure for the quality of the link (called a hop) between the two nodes. A web page may display a customized bar graph chart, where each of the successive hops is represented by a horizontal bar. The width of the bar may represent the measured message transfer time. The width of all bars together may represent the total transfer time. Therefore, it may be desired to place bars successively on one row, or on successive rows. It may even be desired to place successive sets of bars on successive rows in a snake-like sequence. Another feature of each bar could carry other pertinent information, for instance the bar color could identify the type of hop. And the height of the bar could, for example, represent the available capacity of the hop, or a measure for its congestion. Additional text labels, icons, shading, shadowing, etc., could represent other relevant information.
Typically, a developer of a website like this would directly write detailed code to define the custom bar graph visualization, heavily relying on hypertext markup language (HTML), cascaded stylesheets (CSS), and some script language, for example JavaScript. Although she or he could purchase a pre-developed bar graph chart component, none that is for sale might meet the exact needs.
A computer software programmer developing software that needs to measure and display system or internet performance faces the same problems. However, he or she may depend on other existing technologies to define the custom bar graph visualization. Many options exist: a Java programmer might work with NetBeans; a C++ programmer might work with Qt or wxWidgets; a C# programmer might prefer XAML, etc.
Another application area is project management. Most project management software, including Oracle's Primavera, Microsoft Project, Smartsheet, OpenProject, and others, have the capability to display a GANTT chart: a type of bar chart adapted to show a project's work breakdown structure. A GANTT chart can also be shown on a web page.
Prepackaged and precompiled software usually provides limited possibilities to configure what is displayed by a GANTT chart. A user of Microsoft Project is limited to the software's built-in options for selecting what to display, and how. A user of open-source software theoretically has the capability to change the software's source code and recompile it. However, this is a cumbersome procedure that may require substantial reverse engineering. Again, a developer may purchase a pre-developed GANTT chart component. But, this is likely to have similar limitations as discussed above.
Yet another area of application is scheduling. Calendar software and pre-developed components are readily available. However, when none meets the exact requirements, a developer may be forced to develop a visualization in all its minute detail.
Unfortunately, for the above and similar cases, developers have been limited to two extremes: either use a predeveloped solution with all its limitations, or develop a process visualization solution from scratch.